package com.xln.demo3继承;

/**
 * 女性子类，展示字段遮蔽、方法重写与方法重载示例。
 */
public class Woman extends People{

    String sex;
    Integer age=15;

    /**
     * 构造器：演示子类构造会先调用父类无参构造。
     */
    public Woman() {
        //super();
        System.out.printf("子类所有的构造器默认都会先访问父类中无参构造器，再执行自己！\nsuper()一定在第一行,不写也存在\n");
    }

    /** 获取性别 */
    public String getSex() {
        return sex;
    }

    /** 设置性别 */
    public void setSex(String sex) {
        this.sex = sex;
    }


    /** 子类特有方法：玩耍 */
    public void wan(){
        System.out.printf("女人会到处玩!");
    }

    /**
     * 演示字段遮蔽：此处的 age 为子类字段，非父类的 protected age。
     * 同时打印一个新建父类实例设置的年龄。
     */
    public void age(){
        System.out.printf("女儿年龄："+age);
        People people = new People();
        people.setAge(30);
        System.out.printf("父亲年龄："+people.getAge()+" ");
    }

    @Override
    /** 重写父类 sleep，在调用父类后追加子类逻辑。 */
    public void sleep() {
        super.sleep();
        System.out.printf("女儿睡觉 \n");
    }
    //方法重载
    /**
     * 方法重载：在父类 eat 的基础上，追加传入食物描述。
     * @param fan 食物描述
     */
    public void eat(String fan) {
        super.eat();
        System.out.printf("女儿吃"+fan);
    }
}
